package br.com.caelum.vraptor.controller;

import javax.inject.Inject;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.components.UsuarioSession;
import br.com.caelum.vraptor.dao.UsuarioDAO;
import br.com.caelum.vraptor.entidades.Usuario;

@Controller
public class AutenticationController {

	@Inject
	private Result result;
	
	@Inject
	private UsuarioDAO dao;
	
	@Inject
	private UsuarioSession usuarioSession; //Sess�o do usu�rio
	
	public void login(Usuario usuario) {
		 usuario = dao.login(usuario); //Verifica os dados de autentica��o no banco de dados: Se retornar um objeto usuario diferente de null, significa que os dados de autentica��o (login e senha) est�o corretos, caso retorne null, significa que est� incorreto.
		
		if (usuario != null) { //Se foi logado com sucesso...
			System.out.println("Ok!");
			usuarioSession.login(usuario); //Joga usuario na sess�o
	
			if(usuarioSession.getUsuario().getPerfil().getId() == 2){
				result.redirectTo(IndexController.class).perfilescola();
			}
			
			else if(usuarioSession.getUsuario().getPerfil().getId() == 3){
				result.redirectTo(IndexController.class).perfilempresa();
			}
		}
		
		else { //Caso haja algum erro nos dados de login, e assim tiver retornado null...
			System.out.println("Erro!");
		result.redirectTo(AutenticationController.class).autentica(); //Redirecionou, mas sem logar na sess�o.
		}

	}
	
	public void logout() {
		usuarioSession.logout();
		result.redirectTo(IndexController.class).index();
	}
	
	public void autentica(){
		
	}
}
